package com.hwua.view;

import com.hwua.domain.User;
import com.hwua.service.IUserService;
import com.hwua.serviceimpl.UserServiceImpl;
import com.hwua.util.InputTools;
import jdk.internal.util.xml.impl.Input;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * 登录界面
 * @author Administrator
 */
public class RegisterView extends View {
    @Override
    public View showView() {

        //-- 只管用户名
        String name = "";
        while(true){
            System.out.println("输入用户名");
            name = InputTools.nextString();
            //-- 使用正则表达式来匹配用户名
            String regEx = "^(?!_)(?!.*?_$)[a-zA-Z0-9_\\u4e00-\\u9fa5]+$";
            // 编译正则表达式
            // java.util.Regex 导包.
            Pattern pattern = Pattern.compile(regEx);
            // 忽略大小写的写法
            // Pattern pat = Pattern.compile(regEx, Pattern.CASE_INSENSITIVE);
            Matcher matcher = pattern.matcher(name);
            // 字符串是否与正则表达式相匹配
            boolean result = matcher.matches();
            if (!result){
                System.out.println("只可以有汉字,数字和字母不可以有其它内容,请重新输入");
                continue;
            }else{
                break;
            }
        }
        //搜狗输入法  输入  v1  选择 d 就是中文的空格.
        System.out.println("输入密　码");
        String pwd = InputTools.nextString();
        //密码（6-16位数字和字母的组合）：^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,16}$
        //-- 把用户名和密码传递给业务
        IUserService usi = new UserServiceImpl();
        User u = usi.userRegister(name,pwd);
        //-- 等待接收业务的返回来决定去那个界面
        if (u == null) {
            //-- 注册失败
            System.out.println( "注册失败!");
            mView = new WelcomeView();
        }else{
            mView = new MainView();
        }

        return mView;
    }
}
